app:
  experimental:
    packages: 'all' # ✨

  routes:
    bindings:
      catalog.viewTechDoc: techdocs.docRoot
      catalog.createComponent: catalog-import.importPage
      org.catalogIndex: catalog.catalogIndex

  extensions:
    # - apis.plugin.graphiql.browse.gitlab: true
    - graphiql-endpoint:graphiql/gitlab: true

    # Entity page cards
    - entity-card:catalog/about
    - entity-card:catalog/labels
    - entity-card:catalog/links:
        config:
          filter: kind:component has:links
    - entity-card:linguist/languages
    - entity-card:catalog-graph/relations:
        config:
          height: 300
    - entity-card:api-docs/has-apis
    - entity-card:api-docs/consumed-apis
    - entity-card:api-docs/provided-apis
    - entity-card:api-docs/providing-components
    - entity-card:api-docs/consuming-components

    # - entity-card:azure-devops/readme
    # Entity page content
    - entity-content:api-docs/definition
    - entity-content:api-docs/apis
    - entity-content:techdocs
    # - entity-content:azure-devops/pipelines
    # - entity-content:azure-devops/pull-requests
    # - entity-content:azure-devops/git-tags

    # Org Plugin
    - entity-card:org/group-profile
    - entity-card:org/members-list
    - entity-card:org/ownership
    - entity-card:org/user-profile

  # scmAuthExtension: >-
  #   createScmAuthExtension({
  #     id: 'apis.scmAuth.addons.ghe',
  #     factory({ bind }) {
  #       bind.scmAuthAddon({
  #         baseUrl: 'https://github.spotify.net',
  #         api: githubAuthApiRef,
  #       })
  #     }
  #   })

  # externalRouteRefs:
  # bind(catalogPlugin.externalRoutes, {
  #   createComponent: scaffolderPlugin.routes.root,
  #   viewTechDoc: techdocsPlugin.routes.docRoot,
  #   createFromTemplate: scaffolderPlugin.routes.selectedTemplate,
  # });
  # bind(apiDocsPlugin.externalRoutes, {
  #   registerApi: catalogImportPlugin.routes.importPage,
  # });
  # bind(scaffolderPlugin.externalRoutes, {
  #   registerComponent: catalogImportPlugin.routes.importPage,
  #   viewTechDoc: techdocsPlugin.routes.docRoot,
  # });
  # bind(orgPlugin.externalRoutes, {
  #   catalogIndex: catalogPlugin.routes.catalogIndex,
  # });

  # extensions:
  # - plugin.catalog:
  #     config:
  #       externalRoutes:
  #         createComponent: plugin.scaffolder.page
  #         viewTechDoc: plugin.techdocs.docRootPage
  #         createFromTemplate: plugin.scaffolder.templatePage
  # - graphiql.page:
  #     config:
  #       path: /
  # - apis.auth.providers.github:
  #     config:
  #       provider: ghe

  # - core.signInPage:
  #     props:
  #       provider:
  #         id: google
  #         title: Google
  #         message: Sign In using Google
  #         apiRef: googleAuthApiRef # ???

  # - core.nav:
  #     config:
  #       logo: assets/logo.png
  #       layout:
  #       - label: Search
  #         icon: search
  #         to: /search
  #         items:
  #         - point: search
  #       - type: divider
  #       - label: Menu
  #         icon: menu
  #         items:
  #         - label: Home
  #           icon: home
  #           to: /catalog
  #         - label: Create...
  #           icon: create
  #           to: /create
  #         - type: divider
  #         - type: scroll-wrapper
  #           items:
  #           - label: Tech Radar
  #             icon: map
  #             to: /tech-radar
  #           - label: GraphiQL
  #             icon: graphiql
  #             to: /graphiql
  #         - type: divider
  #         - point: shortcuts
  #       - type: space
  #       - type: divider
  #       - label: Settings
  #         icon: avatar
  #         to: /settings
  #         items:
  #         - point: settings
  # - core.nav/search: '@backstage/plugin-search#SidebarSearchModal'
  # - core.nav/shortcuts:
  #     use: '@backstage/plugin-shortcuts#Shortcuts'
  #     config:
  #       allowExternalLinks: true
  # - core.nav/settings: '@backstage/plugin-user-settings#SidebarSettings'

  # - core.pages.index:
  #     at:
  #       point: core.routes
  #       config:
  #         path: /
  #     use: 'react-router-dom#Navigate'
  #     config:
  #       to: /catalog

  # - scaffolder.page:
  #     config:
  #       groups:
  #       - title: Recommended
  #         filter:
  #           entity.metadata.tags: recommended
  # - scaffolder.page/fields: '@backstage/plugin-scaffolder#LowerCaseValuePickerFieldExtension'
  # - scaffolder.page/layout: '@backstage/plugin-scaffolder#TwoColumnLayout'

  # - search.page/content: 'app#customSearchPage' # custom search page from somewhere

  # - user-settings.page.routes.advanced:
  #     at:
  #       point: user-settings.page/routes
  #       config:
  #         title: Advanced
  #         path: /advanced
  #       use: '@backstage/plugin-user-settings#AdvancedSettings'

  # - entity.card.orphanWarning
  # - entity.card.processingErrors
  # - entity.card.about
  # - entity.card.catalogGraph
  # - entity.card.pagerDuty
  # - entity.card.links
  # - entity.card.labels
  # - entity.card.githubInsightsLanguages
  # - entity.card.githubInsightsReleases
  # - entity.card.githubInsightsReadme:
  #     config:
  #       maxHeight: 350 # Throwing this config in to have an example, but in practice rely on default
  # - entity.card.subcomponentsCard
  # - entity.card.userProfile
  # - entity.card.ownership
  # - entity.card.likeDislikeRatings
  # - entity.content.dependsOnComponents
  # - entity.content.codeInsights
  # - entity.content.todo
  # - entity.content.feedbackResponse
